package com.yunzhong.appointment.system.controller;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageInfo;
import com.yunzhong.appointment.entity.Department;
import com.yunzhong.appointment.entity.Professional;
import com.yunzhong.appointment.system.service.ProfessionalService;
import com.yunzhong.appointment.util.PageData;

/**
 * 
 * @className ProfessionalController
 * @description 职务控制器
 * @author 石洪刚
 * @time 2017年11月15日 下午1:40:27
 */
@Controller
@RequestMapping("sys")
public class ProfessionalController {

	@Autowired
	private ProfessionalService professionalService;
	
	/**
	 * 
	 * @methodName listProfessional
	 * @description 查询职务
	 * @author 石洪刚
	 * @time 2017年11月15日 下午1:53:50
	 * @param request
	 * @param mm
	 * @return
	 */
	@RequestMapping("listProfessional")
	public String listProfessional(HttpServletRequest request,ModelMap mm){
		//接收前台数据
		PageData pd = new PageData(request);
		//判断是否为null
		if(pd.getString("professionalName")!=null){
			String professionalName = pd.getString("professionalName");
			pd.put("professionalName", professionalName.replace(" ", ""));
		}
		//查询数据
		List<Professional> varList = professionalService.listProfessional(pd);
		//得到分页数据
		PageInfo page = new PageInfo(varList);
		mm.put("page", page);
		mm.put("pd", pd);
		return "system/professional/listProfessional";
	}
	
	/**
	 * 
	 * @methodName pageProfessional
	 * @description 职务的增加或修改
	 * @author 石洪刚
	 * @time 2017年11月15日 下午1:54:28
	 * @param id
	 * @param mm
	 * @return
	 */
	@RequestMapping("/pageProfessional")
	public String pageProfessional(String id , ModelMap mm){
		if(id!=null){
			//修改页回显
			Professional prof = professionalService.queryProfessionalById(id);
			mm.put("prof", prof);
		}
		//科室下拉菜单
		List<Department> deptList = professionalService.queryDpList();
		mm.put("deptList", deptList);
		return "system/professional/pageProfessional";
	}
	
	/**
	 * 
	 * @methodName judgeProfessionalName
	 * @description 判断职称是否重复
	 * @author 石洪刚
	 * @time 2017年11月15日 下午1:56:50
	 * @param professionalName
	 * @param dpId
	 * @return
	 */
	@RequestMapping("/checkProfessionalName")
	@ResponseBody
	public JSONObject judgeProfessionalName(String professionalName,String dpId){
		JSONObject json = new JSONObject();
		if(!professionalName.replace(" ", "").equals("")){
			Professional prof = professionalService.judgeProfessionalName(dpId,professionalName.replace(" ", ""));
			if(prof!=null){
				json.put("success", "false");
			}else{
				json.put("success", "true");
			}
		}else{
			json.put("success", "empty");
		}
		return json;
	}
	
	/**
	 * 
	 * @methodName saveOrUpdateProfessional
	 * @description 保存或修改职称
	 * @author 石洪刚
	 * @time 2017年11月15日 下午1:57:12
	 * @param prof
	 * @return
	 */
	@RequestMapping("/saveOrUpdateProfessional")
	public String saveOrUpdateProfessional(Professional prof){
		professionalService.insertOrUpdate(prof);
		return "redirect:listProfessional";
	}
	
	/**
	 * 
	 * @methodName removeProfessional
	 * @description 删除职称
	 * @author 石洪刚
	 * @time 2017年11月15日 下午1:57:28
	 * @param ids
	 * @return
	 */
	@RequestMapping("removeProfessional")
	public String removeProfessional(String[] ids){
		professionalService.removeProfessional(ids);
		return "redirect:listProfessional";
	}
}
